/*
 *	File: WikiParser.h
 *	Version: 1.0
 *	Desc:
 *	History:
 *	1. 2011-09-12, Created, zwx
 */

#ifndef WIKIPARSER_H_
#define WIKIPARSER_H_

#include "BaseParser.h"

class WikiParser: public BaseParser {
public:
	WikiParser();
	virtual ~WikiParser();
	bool parse(Document *doc, char* full_text);
	void getMetaData(Document *doc, string full_text);
	int getPairIdx(int start, char pattern, int pair_num, string& text);
	string removeExtension(string s);
	string extractLinks(int start, string& text, Document *doc);
	bool patternMatch(string& text, int start, int end, char *s);
	int findAuthor(string& text, int start, string& author);
	int findTimestamp(string& text, int start, string& timestamp);
	int findInfoBox(string& text, int start, string& infobox);
	int findMatchPattern(string& text, int start, char pattern);
	void findLinks(string& text, int start, Document* doc,int& ref_count);
	void findsections(string& text, int start, string& sections);
	void findCategory(string& text, Document* doc, int start);
	void writeSemwiki(Document* doc, string& author, string& timestamp,
			string& infobox, string& sections);
};

#endif /* WIKIPARSER_H_ */
